# 深拷贝对对象到最后一个可变类型的每一层对象进行拷贝
# 只会对可变类型进行深拷贝

import copy
# 不是可变类型，拷贝的还是一个索引
str1 = 'string'
str2 = copy.deepcopy(str1)
print(id(str1))
print(id(str2))

# 元组的拷贝，如果有可变类型，会重新拷贝一个对象

my_tuple1=(1,[1,2])
my_tuple2=copy.deepcopy(my_tuple1)
print(id(my_tuple1))
print(id(my_tuple2))
# 一直拷贝到最深一个层次的可变类型
print(id(my_tuple1[1]))
print(id(my_tuple2[1]))
# 不可变类型不拷贝
print(id(my_tuple1[0]))
print(id(my_tuple2[0]))

